import { request } from "../../request/index.js";
Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 左侧的菜单数据
        leftMenuList: [],
        rightContent: [],
        // 被点击左侧的菜单项索引号，默认是0，即第一项
        currentIndex: 0,
        // 设置滚动的位置，0表示起始位置，即顶部
        scrollToTop: 0
    },
    // 接口的返回数据
    cates: [],
    onLoad: function (options) {
        /* 
       1 先判断一下本地存储中有没有旧的数据
         {time:Date.now(),data:[...]}
       2 没有旧数据 直接发送新请求 
       3 有旧的数据 同时 旧的数据也没有过期 就使用 本地存储中的旧数据即可
        */
        //1.先判断一下本地存储中有没有旧的数据
        // 数据结构：  {time:Date.now(),data:[...]}
        const local_cates=wx.getStorageSync("cates")
        // 2.判断本地数据是否为空
        if(!local_cates){
            // 该数据不存在，发送网络请求，获取数据
            console.log("本地缓存没有数据， 访问网络...")
            this.getCates();
        }else{
            // 数据存在，判断数据是否有效 ,有效期是10秒 
            if(Date.now()-local_cates.time > 1000*10){
                // 数据失效，重新访问网络
                console.log(" 数据失效，重新访问网络");
                this.getCates()
            }else{
                console.log(" 使用缓存数据...");
                this.cates = local_cates.data;
                let leftMenuList = this.cates.map(v => v.cat_name);
                let rightContent = this.cates[0].children;
                this.setData({
                    leftMenuList,
                    rightContent
                })

            }


        }
        
    },
    // 定义请求分类数据的方法
    getCates() {
        request({ url: "/categories" })
            .then(res => {
                console.log("访问网络...");
                this.cates = res.data.message;
                // 保存数据到本地缓存
                 // 数据结构：  {time:Date.now(),data:[...]}
                wx.setStorageSync('cates', {time:Date.now(),data:this.cates});
                let leftMenuList = this.cates.map(v => v.cat_name);
                let rightContent = this.cates[0].children;
                this.setData({
                    leftMenuList,
                    rightContent
                })
            });
    },
    handleItemTap(e) {
        const { index } = e.currentTarget.dataset;
        // console.log(index)
        let rightContent = this.cates[index].children;
        this.setData({
            rightContent,
            currentIndex: index,
            scrollToTop: 0
        })
    }
})